package DaEr4_1;

import java.util.Arrays;

public class KuaiSuPaiXu {
    public static void main(String[] args) {
        int a=3,b=2,sum=3;
        sum=add(a,b,sum);//copy一份 值传递
        System.out.println("sum = " + sum);
//        int[]arr={12,5,67,13,20,18};
        //由小到大排序
//        System.out.println("Arrays.toString(arr) = " + Arrays.toString(arr));
//        StartSort(arr,0, arr.length-1);
//        System.out.println("Arrays.toString(arr) = " + Arrays.toString(arr));

    }
    public static int add(int a,int b,int sum){
        sum=a+b;
        return sum;
    }
//插入排序

    public static  void insertSort(int[]a){
        int r;
        for (int i = 0; i < a.length; i++) {//从第0个逐个遍历数组元素
            for (int j = i; j < 0; j++) {//每遍历一个进行比较交换
                if (a[j-1]>a[j]){
                    r=a[j-1];
                    a[j-1]=a[j];
                    a[j]=r;
                }
            }
        }
    }
   // 递归 /分治策略模式
    public static void StartSort(int[] arr1,int l,int r) {
       if (l<r){//满足，数组中有多个数组元素
           //1.找基准值
           int base=arr1[l];
           int left=l;
           int right=r;
           while (left<right){
               //从右边向左找，比base大，right-- 如果小，则替换left位置
               while (left<right&&arr1[right]>=base){
                   right--;
               }
               arr1[left]=arr1[right];
               while (left<right&&arr1[left]<=base){
                   left++;
               }
               arr1[right]=arr1[left];
           }
           arr1[left]=base;
           // 上边的while结束时，说明上图中两根指针相遇握手
           //第一轮结束
           StartSort(arr1,l,left-1);//使用相同的方式递归左边排序
           StartSort(arr1,right+1,r);//使用相同的方式递归右边排序
       }
    }
}
